Beaver multiplication triples:
[9]D. Beaver. Efficient multiparty protocols using circuit randomization. In CRYPTO, 1991.
1.1 Our Contributions
an eff. mixed-protocol framework for secure 2PC over an l-bit ring
secure against a semi-honest adv.
use an input-independent setup
focus on online efficiency
Comparison of ABY2.0 and other 2PC protocols
[41] ABY:
[13]SPDZ:
2-input multiplication:
same complexity as SPDZ but using a different approach.
N-input multiplication gate:
constant cost of 2 ring elements and 1 round of itertations
Mixed Protocol Conversions
reduces the number of online rounds from 2 to 1
use correlated OTs(cOT)
Optimization: cOT
[5]cOT
Building Blocks
1.2 Related Work
Eff. SS-based solutions for the dishonest majority over fields
[40]
[56]
Extended to the ring
[35]
[82] extended the multiplication from 2-input to N-input using Beaver triple extension
2 Preliminaries
3 2PC in Arithmetic, Boolean and Yao's World
3.1 2PC in Arithmetic World
highlight: its effectiveness towards efficient realisations for multiple input multiplication gates and dot product operations.
3.1.2 Sharing Semantics
Sharing Notions:
<·>-sharing: ([δv]i,Δv)
δv is [·]-shared among P0, P1
Δv=v+δv
Δv is known to both P0, P1 in clean
3.1.3 Protocols
Sharing Protocol
enable party Pi to generate a <·>-sharing of its input value v
Pi generate a <·>-sharing of its input value v
(setup)generate a [·]-shared: [δv]
Pi samples random [δv]i
two parties together sample [δv]1−i
Pi knows δv=[δv]0+[δv]1
(online) Δv is konwn to both
Pi computes Δv=v+δv
Pi sends it to P1−i
REC
mutually exchange [·] share of δv
Linear Operations
Given <a>, <b> and public constants c1,c2.
Parties can locally compute ⟨y⟩=c1⋅⟨a⟩+c2⋅⟨b⟩
Pi locally sets Δy=c1⋅Δa+c2⋅ΔbΔa,Δb is known constants
then [δy]i=c1⋅[δa]i+c2⋅[δb]i
Multiplication Protocol
Δa,Δb are consts.
They can compute a []-sharing of Δyif the parties obtain [·]-sharing of δab=δaδb
The problem of multiplication reduces to generating [δab] given [δa]and [δb]
Figure 2: Multiplication Protocol
OT based setup MULT
Correlated OTs(cOT)
[5]
Execute cOTll to [·] sharing of [δa]0[δb]1
For j : 0 ... l−1 ( j-th instance of cOT)
P0(sender):
inputs correlation function: fj(x)=x+2j[δa]0
obtains: (mj,0=rj,mj,1=rj+2j[δa]0)
P1(receiver):
inputs choice bit bj : the j-th bit of [δb]1
obtains: mj,bj
[·] share
P0: [([δa]0[δb]1)]0=∑j=0ℓ−1(−rj)
P1: [([δa]0[δb]1)]1=∑j=0ℓ−1mj,bj
HE-based setupMULT:
P0 : use pk0 encrypts its msg [δa]0,[δb]0
P1: use pk0 encrypts [δa]1,[δb]1 and random element r
P0: sends ciphertext to P1
P1: computes ciphertext correspnding to v: v=[δ2]0[δb]1+[δa]1[δb]0−r (HE)
and sends encryption of v to P0
P0: use sk0 decrypt it
[·] share
P0: v
P1: r
[δa]0[δb]1+[δa]1[δb]0=v+r
3.1.1 High-level Overview of Our 2PC over Ring
Beaver's technique on gates inputs
Beaver's multiplication triples:
[9]
Setup Phase:
interactively generate the multiplication triple: (δa,δb,δab) with δab=δaδb
Online Phase:
mutually exchange the shares of Δa,Δb
compute an additive sharing Δa,Δb
locally compute a sharing of a⋅b
Figure 1: High Level overview of Beaver's and ABY2.0
requires communicating 4 elements per multiplication(2 elements per reconstruction)
REC Δa,Δb
Our technique on gate outputs:
sharing semantics ensure the parties to have the Δ value
the reconstructions of input wires are no longer required
But inorder to proceed further, a sharing a y needs to be generated.
So parties locally compute an additive sharing of Δy and exchange the shares to reconstruct Δy
Main Idea:
shifs the need of reconstruction from per input wire to the output wire.
For a fan-in 2, it reduces the number of reconstructions from 2 to 1.
3.1.4 Multi-Input Multiplications Gates
3-Input Multiplication gate:
need to generate the [·]-sharing of δab,δbc,δac and δabc
Multi-Input Multiplication gate
extend to N-input without inflating the online communication.
3.2 2PC in Boolean World
in a Boolean ring Z21
replace additions with XORS and multiplications with ANDS
NOT: Negation Protocol
3.3 2PC in Yao World
Main:
Yao World from ABY
[41]
For a wire with v∈0,1
P0 (garbler): zero-key on the wire⟨v⟩0=Ku0
P1 (evaluator): actual key ⟨v⟩1=Kuv
GC Optimization
free-XOR:
[70]
Point-and-permute:
[11]
4 Mixed Protocol Conversions
4.1 Standard Conversions
Highlight:
invoke OT in the setup phase only
Y2B
Goal: generate equivalent Boolean sharing given Yao sharing
in Yao: LSB of Ku0 and Kuu can reveal u
free-XOR property: last bit of zero and one key are distinct
Y2B:
convert: each party Boolean-shares the LSB of their ⟨u⟩iY
obtain u: ⟨u⟩B=⟨u⟩0B⊕⟨u⟩1B
optimization: P0可以在setup phase Boolean-shares LSB(Ku0),因为这是一个随机选的label,而另一个指depends on the value.